package com.fzg.common.demo.hutool;

import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.thread.ThreadUtil;
import lombok.extern.slf4j.Slf4j;

import java.time.LocalDateTime;

/**
 * create by fzg
 * 2022/12/6 16:07
 */

@Slf4j
public class Demo05 {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        log.info(now.toString());
        LocalDateTime localDateTime = LocalDateTimeUtil.parse("2022-02-02", DatePattern.NORM_DATE_FORMATTER);
        log.info(localDateTime.toString());

        // 格式化
        String format = LocalDateTimeUtil.format(now, DatePattern.NORM_DATETIME_PATTERN);
        log.info(format);


        // 开始计时
        TimeInterval timer = DateUtil.timer();
        // --------------------------------------
        // ---------执行一段耗时的代码
        ThreadUtil.sleep(2 * 1000 + 120);
        // --------------------------------------
        // 获取花费的毫秒数
        long second = timer.interval();
        log.info("花费的毫秒数：{}",second);
        // 获取话费的分钟数
        long minute = timer.intervalMinute();
        log.info("花费的分钟数：{}",minute);
        // 重置开始时间
        TimeInterval restart = timer.restart();
        // 重置开始时间并且毫秒数
        long time = timer.intervalRestart();
        log.info("花费的时间：{}",time);

        /*
          分组计时
         */
        final TimeInterval timer1 = new TimeInterval();
        // 分组1
        timer1.start("1");
        ThreadUtil.sleep(800);
        // 分组2
        timer1.start("2");
        ThreadUtil.sleep(1200);
        log.info("分组1花费{}秒",timer1.intervalMs("1"));
    }
}
